package cn.com.bluemoon.daps.sync.service;

import cn.com.bluemoon.daps.common.mp.IBmService;
import cn.com.bluemoon.daps.sync.entity.DapSyncTaskOperRecord;
import cn.com.bluemoon.daps.sync.vo.model2prod.SyncOperRecordOut;

import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 同步功能操作记录表 服务类
 * </p>
 *
 * @author admin
 * @since 2021-06-17
 */
public interface DapSyncTaskOperRecordService extends IBmService<DapSyncTaskOperRecord> {
    /**
     * 模型发布同步任务执行操作记录
     *
     * @param modelId  模型
     * @param taskId   发布同步任务id {@link cn.com.bluemoon.daps.sync.entity.DapSyncProdEnvTask#getId()}
     * @param contents 记录内容
     * @return 记录id
     */
    List<String> marks(String modelId, String taskId, List<String> contents);

    /**
     * 模型发布同步任务执行操作记录
     *
     * @param modelId 模型
     * @param taskId  发布同步任务id {@link cn.com.bluemoon.daps.sync.entity.DapSyncProdEnvTask#getId()}
     * @param content 记录内容
     * @return 记录id
     */
    String mark(String modelId, String taskId, String content);

    /**
     * 模型发布同步任务执行操作记录
     *
     * @param modelId  模型
     * @param taskId   发布同步任务id {@link cn.com.bluemoon.daps.sync.entity.DapSyncProdEnvTask#getId()}
     * @param content  记录内容
     * @param markTime 指定记录时间
     * @return 记录id
     */
    String mark(String modelId, String taskId, String content, LocalDateTime markTime);

    /**
     * 日志
     * @param modelId 模型
     * @param taskId 任务id
     * @return list
     */
    List<SyncOperRecordOut> findOpersByTaskId(String modelId, String taskId);
}
